package zzs.generalframework.console.core.parameter.commonparameter.department.service;

import java.util.List;

import zzs.generalframework.common.core.parameter.commonparameter.department.DepartmentBO;
import zzs.generalframework.common.core.parameter.commonparameter.department.DepartmentInfo;
import zzs.generalframework.console.common.exception.ConsoleException;
import zzs.generalframework.console.common.model.ConsoleReturnBO;

/**
 * @title
 * @description
 * @project zzs-console
 * @package zzs.generalframework.console.core.parameter.commonparameter.department.service
 * @author zzs
 * @date 2018年2月2日
 * @version 1.0
 */
public interface IDepartmentService
{

	/**
	 * 保存部门信息
	 *
	 * @param department
	 * @return
	 */
	public ConsoleReturnBO saveDepartment(DepartmentBO departmentBO);

	/**
	 * 保存部门信息列表
	 *
	 * @param departmentBOList
	 * @return
	 * @throws ConsoleException
	 */
	public ConsoleReturnBO saveDepartment(List<DepartmentBO> departmentBOList) throws ConsoleException;

	/**
	 * 获取部门信息
	 *
	 * @param departmentInfo
	 * @return
	 */
	public ConsoleReturnBO getDepartment(DepartmentInfo departmentInfo);

	/**
	 * 获取部门信息列表
	 *
	 * @param departmentInfo
	 * @return
	 */
	public ConsoleReturnBO listDepartment(DepartmentInfo departmentInfo);

	/**
	 * 更新部门信息
	 *
	 * @param departmentBO
	 * @return
	 */
	public ConsoleReturnBO updateDepartment(DepartmentBO departmentBO);

	/**
	 * 更新部门信息列表
	 *
	 * @param departmentBOList
	 * @return
	 * @throws ConsoleException
	 */
	public ConsoleReturnBO updateDepartment(List<DepartmentBO> departmentBOList) throws ConsoleException;

	/**
	 * 删除部门信息
	 *
	 * @param departmentBO
	 * @return
	 */
	public ConsoleReturnBO removeDepartment(DepartmentBO departmentBO);

	/**
	 * 删除部门信息列表
	 *
	 * @param departmentBOList
	 * @return
	 * @throws ConsoleException
	 */
	public ConsoleReturnBO removeDepartment(List<DepartmentBO> departmentBOList) throws ConsoleException;

	/**
	 * 统计部门信息
	 *
	 * @param departmentBO
	 * @return
	 */
	public Long countDepartment(DepartmentBO departmentBO);

}
